<?php
namespace app\index\controller;

use think\Controller;
use think\Db;
use think\Log;

/**
 * 日志
 */
class K extends Controller
{

    // 初始化
    public function _initialize()
    {
        Log::init([
            'type' => 'File',
            'path' => APP_PATH.'logs/',
        ]);
    }

    /**
     * 介绍
     */

    // 日志初始化
    public function index()
    {
        Log::init([
           'type' => 'File',
            'path' => APP_PATH.'logs/',
        ]);
    }


    /**
     * 日志写入
     */

    // 手动记录
    public function a()
    {
        // 系统在请求结束后会自动调用Log::save方法
        Log::record('我喜欢这倒霉的工作。');

        // 默认的话记录的日志级别是INFO，也可以指定日志级别
        Log::record('测试日志，默认是警告', 'notice');

        // 实时保存，可以采用write方法
        Log::write('我喜欢小米', 'notice');
    }

    // 系统提供了不同日志级别的快速记录方法
    public function b()
    {
        Log::log('我是log');
        Log::error('我是error');
        Log::notice('我是notice');
        Log::info('我是info');
        Log::sql('我是sql');
    }

    // 助手函数
    public function c()
    {
        trace('我是助手函数', 'notice');
        trace('我是助手函数', 'aa');
    }

    // 也支持指定级别日志的输入，需要配置信息
    public function d()
    {
        Log::init([
            'type' => 'File',
            'path' => APP_PATH.'logs/',
            'level' => ['error'],   // 日志记录级别，使用数组表示
        ]);

        Log::log('log');
        Log::error('error');
        Log::notice('notice');
    }


    /**
     * 独立日志
     */

    // 独立日志文件按天保存，不限制大小
    public function e()
    {
        Log::init([
            'type' => 'File',
            'path' => APP_PATH.'logs/',
            'apart_level' => ['error', 'sql'],   // error和sql日志单独记录
        ]);

        Db::name('user')->select();

        Db::name('aa')->select();       // error

        Log::info('我是小白');
    }


    /**
     * 日志清空
     */

    // 日志清空仅仅是清空内存中的日志
    public function f()
    {
        Log::clear();
    }


    /**
     * 写入授权
     */

    // 写入授权
    public function g()
    {

    }

}
